home *** CD-ROM | disk | FTP | other *** search
/ Belgian Amiga Club - ADF Collection / BS1 part 65.zip / BS1 part 65 / Math Visin v2.1 disk 1.adf / Arexx.WB / Misc / SayColors < prev    next >
Text File  |  1992-02-12  |  5KB  |  199 lines

  1. /* SayColors    Give English versions of the colors onscreen    7-mar-90 dh
  2.  
  3.   A sparse 3-dimensional array is used, with color names scattered throughout
  4. the array.  The screen color indexes into this array, and a search is made
  5. for the closest named color.  This program is by no means complete or 
  6. accurate.  If you have a good eye for color, try filling in the initialization
  7. routine.
  8.  
  9. ==========================================================================*/
  10.  
  11. ADDRESS "MathVision"
  12. OPTIONS RESULTS
  13. OPTIONS FAILAT 1
  14. SIGNAL ON ERROR
  15.  
  16. CALL InitColorTable
  17.  
  18. Get Depth
  19. NumColors = 2**RESULT
  20.  
  21. DO i = 0 to NumColors-1
  22.   Get Color i
  23.   PARSE VAR RESULT DMAColorR.i DMAColorG.i DMAColorB.i
  24. END
  25.  
  26. StopSign "F"
  27. DO i = 0 to NumColors-1
  28.   Say "Color "i GetColorName( DMAColorR.i DMAColorG.i DMAColorB.i )
  29.   Get StopSign
  30.   IF (RESULT = "T") THEN EXIT
  31. END
  32.  
  33. OPTIONS PROMPT "Press <RETURN> to Exit: "
  34. PULL response
  35. EXIT
  36.  
  37. /*------------------------ InitColorTable ----------------------------- */
  38. InitColorTable:        /* sparse 3-dimensional array */
  39.             /* CT.Red.Green.Blue */
  40.   CT. = ""  /* initialize to nil */
  41.  
  42.   CT.0.0.0    = "Black"
  43.   CT.0.0.4    = ""
  44.   CT.0.0.8    = "Dark Blue"
  45.   CT.0.0.12   = ""
  46.   CT.0.0.15   = "Blue" 
  47.   CT.0.4.0    = ""
  48.   CT.0.4.4    = ""
  49.   CT.0.4.8    = ""
  50.   CT.0.4.12   = ""
  51.   CT.0.4.15   = "" 
  52.   CT.0.8.0    = "Dark Green"
  53.   CT.0.8.4    = ""
  54.   CT.0.8.8    = "Green Gray"
  55.   CT.0.8.12   = ""
  56.   CT.0.8.15   = "Light Blue" 
  57.   CT.0.12.0    = "Light Green"
  58.   CT.0.12.4    = ""
  59.   CT.0.12.8    = "Pale Green"
  60.   CT.0.12.12   = ""
  61.   CT.0.12.15   = "Light Blue" 
  62.   CT.0.15.0    = "Green"
  63.   CT.0.15.4    = ""
  64.   CT.0.15.8    = "Light Green"
  65.   CT.0.15.12   = "Pale Green"
  66.   CT.0.15.15   = "Light Blue" 
  67.  
  68.   CT.4.0.0    = ""
  69.   CT.4.0.4    = ""
  70.   CT.4.0.8    = ""
  71.   CT.4.0.12   = ""
  72.   CT.4.0.15   = "" 
  73.   CT.4.4.0    = ""
  74.   CT.4.4.4    = "Dark Gray" 
  75.   CT.4.4.8    = ""
  76.   CT.4.4.12   = ""
  77.   CT.4.4.15   = "" 
  78.   CT.4.8.0    = ""
  79.   CT.4.8.4    = ""
  80.   CT.4.8.8    = ""
  81.   CT.4.8.12   = ""
  82.   CT.4.8.15   = "" 
  83.   CT.4.12.0    = ""
  84.   CT.4.12.4    = ""
  85.   CT.4.12.8    = ""
  86.   CT.4.12.12   = ""
  87.   CT.4.12.15   = "" 
  88.   CT.4.15.0    = ""
  89.   CT.4.15.4    = ""
  90.   CT.4.15.8    = ""
  91.   CT.4.15.12   = ""
  92.   CT.4.15.15   = "" 
  93.  
  94.   CT.8.0.0    = "Rust"
  95.   CT.8.0.4    = ""
  96.   CT.8.0.8    = "Magenta"
  97.   CT.8.0.12   = "Violet"
  98.   CT.8.0.15   = "RedBlue" 
  99.   CT.8.4.0    = "Chocolate Brown"
  100.   CT.8.4.4    = ""
  101.   CT.8.4.8    = ""
  102.   CT.8.4.12   = ""
  103.   CT.8.4.15   = "" 
  104.   CT.8.8.0    = "Slate Green"
  105.   CT.8.8.4    = ""
  106.   CT.8.8.8    = "Gray"
  107.   CT.8.8.12   = "Blue Gray"
  108.   CT.8.8.15   = "" 
  109.   CT.8.12.0    = "Yellow Green"
  110.   CT.8.12.4    = ""
  111.   CT.8.12.8    = "Pastel Green"
  112.   CT.8.12.12   = "Gray Green"
  113.   CT.8.12.15   = "Sky Blue" 
  114.   CT.8.15.0    = "Bright YellowGreen"
  115.   CT.8.15.4    = ""
  116.   CT.8.15.8    = ""
  117.   CT.8.15.12   = ""
  118.   CT.8.15.15   = "Baby Blue" 
  119.  
  120.   CT.12.0.0    = "Blood Red"
  121.   CT.12.0.4    = ""
  122.   CT.12.0.8    = ""
  123.   CT.12.0.12   = "Violet"
  124.   CT.12.0.15   = "" 
  125.   CT.12.4.0    = ""
  126.   CT.12.4.4    = ""
  127.   CT.12.4.8    = ""
  128.   CT.12.4.12   = "Pastel Purple"
  129.   CT.12.4.15   = "" 
  130.   CT.12.8.0    = "Mustard"
  131.   CT.12.8.4    = ""
  132.   CT.12.8.8    = "Pastel Brown"
  133.   CT.12.8.12   = "Pastel Purple"
  134.   CT.12.8.15   = "" 
  135.   CT.12.12.0    = ""
  136.   CT.12.12.4    = ""
  137.   CT.12.12.8    = ""
  138.   CT.12.12.12   = "Light Gray"
  139.   CT.12.12.15   = "Steel Gray" 
  140.   CT.12.15.0    = "Yellow Green"
  141.   CT.12.15.4    = ""
  142.   CT.12.15.8    = ""
  143.   CT.12.15.12   = ""
  144.   CT.12.15.15   = "Light Blue" 
  145.  
  146.   CT.15.0.0    = "Red"
  147.   CT.15.0.4    = ""
  148.   CT.15.0.8    = ""
  149.   CT.15.0.12   = ""
  150.   CT.15.0.15   = "Purple" 
  151.   CT.15.4.0    = ""
  152.   CT.15.4.4    = ""
  153.   CT.15.4.8    = "Pink"
  154.   CT.15.4.12   = "Light Purple"
  155.   CT.15.4.15   = "" 
  156.   CT.15.8.0    = "Tan"
  157.   CT.15.8.4    = ""
  158.   CT.15.8.8    = "Peach"
  159.   CT.15.8.12   = ""
  160.   CT.15.8.15   = "" 
  161.   CT.15.12.1    = "Jaundice"
  162.   CT.15.12.4    = ""
  163.   CT.15.12.8    = "Wheat"
  164.   CT.15.12.12   = "Peach Brown"
  165.   CT.15.12.15   = "" 
  166.   CT.15.15.0    = "Yellow"
  167.   CT.15.15.4    = ""
  168.   CT.15.15.8    = "Light Yellow"
  169.   CT.15.15.12   = "Pale Yellow"
  170.   CT.15.15.15   = "White"
  171.  
  172.   RETURN
  173.  
  174.  
  175. /*----------------------------- GetColorName ------------------------------ */
  176. GetColorName:
  177.   ARG Red Green Blue
  178.   DO Radius = 0 to 15
  179.     DO R = Red-Radius TO Red+Radius
  180.       DO G = Green-Radius TO Green+Radius
  181.         DO B = Blue-Radius TO Blue+Radius
  182.           IF (CT.R.G.B ~= "")
  183.           THEN DO
  184.             FoundR = R; FoundG = G; FoundB = B
  185.             r = 1000; g = 1000; b = 1000; radius = 1000
  186.           END
  187.         END 
  188.       END
  189.     END
  190.   END
  191.  
  192. RETURN CT.FoundR.FoundG.FoundB
  193.  
  194. ERROR:            /* Error Diagnostic for return codes */
  195.   Get Diagnosis RC
  196.   SAY RESULT" on line "SIGL
  197.   do i=0 to 500; end
  198.   EXIT
  199.